home *** CD-ROM | disk | FTP | other *** search
/ Animation How-To / Animation How-to CD.iso / PLY / CHAPTER4 / JELLYDIM / DIAM1.PI next >
Text File  |  1994-01-01  |  18KB  |  401 lines

  1. //DIAM1.PI
  2.  
  3. start_frame 0
  4. end_frame 71
  5. total_frames 72
  6.  
  7. define ang frame*360/total_frames
  8.  
  9. outfile "diam1"
  10.  
  11. viewpoint {
  12.    from <0,-8,4>
  13.    at <0,0,0>
  14.    up <0,0,1>
  15.    angle 30
  16.    resolution 320,200
  17.    aspect 1.43
  18.    }
  19. background SkyBlue*0.8
  20.  
  21. include "\ply\colors.inc"
  22.  
  23. spot_light  <1,0.5,0>, <-5,5, 5>,<0,4,0>,3,5,20
  24. spot_light  <1,0.5,0>, < 5,5, 5>,<0,4,0>,3,5,20
  25. spot_light  <1,1,1>, < 0,0, 5>,<0,0,0>,3,5,20
  26. spot_light  <1,1,1>, < 0,0, 5>,<0,0,0>,3,5,20
  27.  
  28.  
  29. define diamond
  30. texture {
  31.    surface {
  32.       ambient 0
  33.       diffuse 0
  34.       specular 0.1
  35.       reflection white, 0.0
  36.       transmission white, 1, 2.6
  37.       }
  38.    }
  39.  
  40. object { disc <0, 0,-2.5>, <0, 0, 1>, 8 reflective_coral }
  41.  
  42. define pi 3.14159
  43. define rad pi / 180
  44.  
  45. define radius1 1
  46. define radius2 1.4
  47. define radius3 1.8
  48. define radius4 0.8
  49. define radius5 0.01
  50.  
  51. define masteramp 1.3
  52.  
  53. define amplitude1 0.03 * masteramp
  54. define amplitude2 0.02 * masteramp
  55. define amplitude3 0.01 * masteramp
  56. define amplitude4 0.04 * masteramp
  57. define amplitude5 0.05 * masteramp
  58.  
  59. define phase0 80   // hump phase
  60.  
  61. define phase1 0
  62. define phase2 25
  63. define phase3 50
  64. define phase4 75  
  65. define phase5 87  
  66.  
  67. define ht1  1.0
  68. define ht2  0.8
  69. define ht3  0.5
  70. define ht4 -1.0
  71. define ht5 -2
  72.  
  73. define wave 4
  74. define bump 1.3
  75.  
  76. define height1 ht1 + amplitude1 * (wave * cos(rad * (ang- phase1)) + EXP(bump * (1 + cos((ang- phase0- phase1) * rad))))
  77. define height2 ht2 + amplitude2 * (wave * cos(rad * (ang- phase2)) + EXP(bump * (1 + cos((ang- phase0- phase2) * rad))))
  78. define height3 ht3 + amplitude3 * (wave * cos(rad * (ang- phase3)) + EXP(bump * (1 + cos((ang- phase0- phase3) * rad))))
  79. define height4 ht4 + amplitude4 * (wave * cos(rad * (ang- phase4)) + EXP(bump * (1 + cos((ang- phase0- phase4) * rad))))
  80. define height5 ht5 + amplitude5 * (wave * cos(rad * (ang- phase5)) + EXP(bump * (1 + cos((ang- phase0- phase5) * rad))))
  81.  
  82. define newradius1 radius1*height1
  83. define newradius2 radius2*height2*1.3
  84. define newradius3 radius3*height3*2
  85. define newradius4 radius4*(2+height4)
  86. define newradius5 radius5
  87.  
  88. define f 1 
  89. define a 360 * f / 8
  90. define bend1 0
  91.  
  92. define vertex01x newradius1 * cos(rad * a)
  93. define vertex01y newradius1 * SIN(rad * a)
  94. define vertex01z height1
  95.  
  96. define vertex09x newradius2 * cos(rad * (a + 22.5))
  97. define vertex09y newradius2 * SIN(rad * (a + 22.5))
  98. define vertex09z height2
  99.  
  100. define vertex17x newradius3 * cos(rad * (a + 45))
  101. define vertex17y newradius3 * SIN(rad * (a + 45))
  102. define vertex17z height3
  103.  
  104. define vertex25x newradius3 * cos(rad * (a + 67.5))
  105. define vertex25y newradius3 * SIN(rad * (a + 67.5))
  106. define vertex25z height3
  107.  
  108. define vertex33x newradius4 * cos(rad * (a + 67.5))
  109. define vertex33y newradius4 * SIN(rad * (a + 67.5))
  110. define vertex33z height4
  111.  
  112.  
  113. define f 2 
  114. define a 360 * f / 8
  115. define bend2 45
  116.  
  117. define vertex02x newradius1 * cos(rad * a)
  118. define vertex02y newradius1 * SIN(rad * a)
  119. define vertex02z height1
  120.  
  121. define vertex10x newradius2 * cos(rad * (a + 22.5))
  122. define vertex10y newradius2 * SIN(rad * (a + 22.5))
  123. define vertex10z height2
  124.  
  125. define vertex18x newradius3 * cos(rad * (a + 45))
  126. define vertex18y newradius3 * SIN(rad * (a + 45))
  127. define vertex18z height3
  128.  
  129. define vertex26x newradius3 * cos(rad * (a + 67.5))
  130. define vertex26y newradius3 * SIN(rad * (a + 67.5))
  131. define vertex26z height3
  132.  
  133. define vertex34x newradius4 * cos(rad * (a + 67.5))
  134. define vertex34y newradius4 * SIN(rad * (a + 67.5))
  135. define vertex34z height4
  136.  
  137.  
  138. define f 3 
  139. define a 360 * f / 8
  140. define bend3 90
  141.  
  142. define vertex03x newradius1 * cos(rad * a)
  143. define vertex03y newradius1 * SIN(rad * a)
  144. define vertex03z height1
  145.  
  146. define vertex11x newradius2 * cos(rad * (a + 22.5))
  147. define vertex11y newradius2 * SIN(rad * (a + 22.5))
  148. define vertex11z height2
  149.  
  150. define vertex19x newradius3 * cos(rad * (a + 45))
  151. define vertex19y newradius3 * SIN(rad * (a + 45))
  152. define vertex19z height3
  153.  
  154. define vertex27x newradius3 * cos(rad * (a + 67.5))
  155. define vertex27y newradius3 * SIN(rad * (a + 67.5))
  156. define vertex27z height3
  157.  
  158. define vertex35x newradius4 * cos(rad * (a + 67.5))
  159. define vertex35y newradius4 * SIN(rad * (a + 67.5))
  160. define vertex35z height4
  161.  
  162.  
  163. define f 4 
  164. define a 360 * f / 8
  165. define bend4 135
  166.  
  167. define vertex04x newradius1 * cos(rad * a)
  168. define vertex04y newradius1 * SIN(rad * a)
  169. define vertex04z height1
  170.  
  171. define vertex12x newradius2 * cos(rad * (a + 22.5))
  172. define vertex12y newradius2 * SIN(rad * (a + 22.5))
  173. define vertex12z height2
  174.  
  175. define vertex20x newradius3 * cos(rad * (a + 45))
  176. define vertex20y newradius3 * SIN(rad * (a + 45))
  177. define vertex20z height3
  178.  
  179. define vertex28x newradius3 * cos(rad * (a + 67.5))
  180. define vertex28y newradius3 * SIN(rad * (a + 67.5))
  181. define vertex28z height3
  182.  
  183. define vertex36x newradius4 * cos(rad * (a + 67.5))
  184. define vertex36y newradius4 * SIN(rad * (a + 67.5))
  185. define vertex36z height4
  186.  
  187.  
  188. define f 5 
  189. define a 360 * f / 8
  190. define bend5 180
  191.  
  192. define vertex05x newradius1 * cos(rad * a)
  193. define vertex05y newradius1 * SIN(rad * a)
  194. define vertex05z height1
  195.  
  196. define vertex13x newradius2 * cos(rad * (a + 22.5))
  197. define vertex13y newradius2 * SIN(rad * (a + 22.5))
  198. define vertex13z height2
  199.  
  200. define vertex21x newradius3 * cos(rad * (a + 45))
  201. define vertex21y newradius3 * SIN(rad * (a + 45))
  202. define vertex21z height3
  203.  
  204. define vertex29x newradius3 * cos(rad * (a + 67.5))
  205. define vertex29y newradius3 * SIN(rad * (a + 67.5))
  206. define vertex29z height3
  207.  
  208. define vertex37x newradius4 * cos(rad * (a + 67.5))
  209. define vertex37y newradius4 * SIN(rad * (a + 67.5))
  210. define vertex37z height4
  211.  
  212.  
  213. define f 6 
  214. define a 360 * f / 8
  215. define bend6 225
  216.  
  217. define vertex06x newradius1 * cos(rad * a)
  218. define vertex06y newradius1 * SIN(rad * a)
  219. define vertex06z height1
  220.  
  221. define vertex14x newradius2 * cos(rad * (a + 22.5))
  222. define vertex14y newradius2 * SIN(rad * (a + 22.5))
  223. define vertex14z height2
  224.  
  225. define vertex22x newradius3 * cos(rad * (a + 45))
  226. define vertex22y newradius3 * SIN(rad * (a + 45))
  227. define vertex22z height3
  228.  
  229. define vertex30x newradius3 * cos(rad * (a + 67.5))
  230. define vertex30y newradius3 * SIN(rad * (a + 67.5))
  231. define vertex30z height3
  232.  
  233. define vertex38x newradius4 * cos(rad * (a + 67.5))
  234. define vertex38y newradius4 * SIN(rad * (a + 67.5))
  235. define vertex38z height4
  236.  
  237.  
  238. define f 7 
  239. define a 360 * f / 8
  240. define bend7 270
  241.  
  242. define vertex07x newradius1 * cos(rad * a)
  243. define vertex07y newradius1 * SIN(rad * a)
  244. define vertex07z height1
  245.  
  246. define vertex15x newradius2 * cos(rad * (a + 22.5))
  247. define vertex15y newradius2 * SIN(rad * (a + 22.5))
  248. define vertex15z height2
  249.  
  250. define vertex23x newradius3 * cos(rad * (a + 45))
  251. define vertex23y newradius3 * SIN(rad * (a + 45))
  252. define vertex23z height3
  253.  
  254. define vertex31x newradius3 * cos(rad * (a + 67.5))
  255. define vertex31y newradius3 * SIN(rad * (a + 67.5))
  256. define vertex31z height3
  257.  
  258. define vertex39x newradius4 * cos(rad * (a + 67.5))
  259. define vertex39y newradius4 * SIN(rad * (a + 67.5))
  260. define vertex39z height4
  261.  
  262.  
  263. define f 8 
  264. define a 360 * f / 8
  265. define bend8 315
  266.  
  267. define vertex08x newradius1 * cos(rad * a)
  268. define vertex08y newradius1 * SIN(rad * a)
  269. define vertex08z height1
  270.  
  271. define vertex16x newradius2 * cos(rad * (a + 22.5))
  272. define vertex16y newradius2 * SIN(rad * (a + 22.5))
  273. define vertex16z height2
  274.  
  275. define vertex24x newradius3 * cos(rad * (a + 45))
  276. define vertex24y newradius3 * SIN(rad * (a + 45))
  277. define vertex24z height3
  278.  
  279. define vertex32x newradius3 * cos(rad * (a + 67.5))
  280. define vertex32y newradius3 * SIN(rad * (a + 67.5))
  281. define vertex32z height3
  282.  
  283. define vertex40x newradius4 * cos(rad * (a + 67.5))
  284. define vertex40y newradius4 * SIN(rad * (a + 67.5))
  285. define vertex40z height4
  286.  
  287.  
  288. define vertex41x 0
  289. define vertex41y 0
  290. define vertex41z height5
  291.  
  292. define vertex42x 0
  293. define vertex42y 0
  294. define vertex42z height1
  295.  
  296.  
  297. // The triangular faces listed clockwise by vertex
  298.  
  299.  
  300. define diam
  301.   object {
  302.  
  303. // Crown
  304.  
  305.    object { polygon 3,<vertex01x,vertex01y,vertex01z>,<vertex42x,vertex42y,vertex42z>,<vertex02x,vertex02y,vertex02z>}
  306.  + object { polygon 3,<vertex02x,vertex02y,vertex02z>,<vertex42x,vertex42y,vertex42z>,<v